DDR配置

创建 Vivado 工程

打开 Vivado,点击 Create Project

选择工程名称和路径,点击 Next

选择 RTL Project(勾选 Do not specify sources at this time),点击 Next

选择正确的 FPGA 型号(如 xc7z020clg400-2),点击 NextFinish


添加 Zynq Processing System IP

Flow Navigator 中点击 Create Block Design

在 Block Design 画布中,点击 “+” 添加 IP,搜索 “Zynq”,选择 Zynq7 Processing System,双击添加。

点击 Run Block Automation(自动连接 PS-PL 接口,保持默认即可)。


配置 DDR 控制器

在 Block Design 中,双击 Zynq IP 打开配置界面。

切换到 DDR Configuration 选项卡:

DDR Controller Configuration

VeryCapture_20250617143724

Memory Part Configuration

具体配置如下:

image-20250813175251175

相关参数通过查看数据手册进行填写:

Training/Board Details

手动输入

如果要手动计算的话,先选择自动模式记下封装延迟,(因为封装延时是信号在芯片封装内部传输的延时,在vivado是看不到的)最后手动计算:

VeryCapture_20250617165413

DQS to Clock Delay(ns)计算公式如下:

DQStoClockDelay(ns)=PathDelayCLK0PathDelayDQS1000

其中:

公式验证:

a.计算 CLK0 的路径延迟

LCLK0=30.4 mm
Package DelayCLK0=80.4535 ps
Propagation Delay=160 ps/inch
LCLK0(inch)=30.425.41.1969 inch
Path DelayCLK0=80.4535+(1.1969×160)271.9575 ps

b.计算 DQS0 的路径延迟

LDQS0=12.391 mm
Package DelayDQS0=105.056 ps
LDQS0(inch)=12.39125.40.4878 inch
Path DelayDQS0=105.056+(0.4878×160)183.056 ps

 

c.计算 DQS0 到时钟的延迟

DQS to Clock DelayDQS0=271.9575183.05610000.0889 ns0.089 nsBoardDelay(ns)

d.其他 DQS 信号的计算

同理,对于 DQS1、DQS2 等信号,只需替换对应的 L 和

Package Delay

值,重复上述步骤即可。

Board Delay(ns)计算公式

Board Delay=Path DelayCLK+Path DelayDQ2×1000

其中:

公式验证:

a.首先计算 CLK 的路径延迟:

b.计算 (DQ[0:7])(以 (DQ7:0) 为例)的路径延迟:

LDQ7:0=12.391 mm
Package DelayDQ7:0=105.056 ps
PathDelayDQ7:0=PackageDelayDQ7:0+LDQ7:0(inch)×PropagationDelay
PathDelayDQ7:0=105.056+0.4878×160
PathDelayDQ7:0=105.056+78.048
PathDelayDQ7:0=183.104ps

 

c.根据公式计算 (Board\ Delay)

Board Delay=Path DelayCLK+Path DelayDQ2×1000
Board Delay=0.22753075 ns0.224 ns
系统自动计算

Calculated:系统自动计算。我们通过画PCB的EDA软件(如Altium Designer、Cadence等)获取DDR的网络走线的长度,填入Length栏中,由vivado自动计算出延时时间。界面如下:

VeryCapture_20250617155859

由于我们有两片DDR3,所以有两对差分时钟信号,其中CLK0,CLK1,DQS0,DQS1是第一片DDR3的信号,CLK0/CLK1 提供时钟,DQS0/DQS1 控制 16 位数据总线,第二片DDR3同理。

VeryCapture_20250617163613

Enable Advanced options

这部分保持默认即可。

在vitis中运行应用程序

选择专为测试DDR的模板:

VeryCapture_20250620101557

编译运行工程:

VeryCapture_20250620102934

运行结果显示:

img

VeryCapture_20250620102204

VeryCapture_20250620102220

运行结果说明:

首先解释一下“眼图”:

DDR 眼图是一种通过示波器观察高速串行信号时,将多个数据位的波形叠加显示形成的图形,因其形状类似 “眼睛” 而得名。它是评估 DDR(Double Data Rate)存储器信号完整性的关键工具。

关键参数

分析